iOS SDK API文档
本文档将详细介绍iOS SDK的API,如果您想要了解如何接入,建议您阅读iOS SDK 使用指南获得安装并使用SDK的方法。您可以在访问GitHub获取iOS SDK的源代码。
最新版本为:2.2.0
更新时间为:2019-10-21
一、类 ThinkingAnalyticsSDK
继承自: NSObject
声明于: ThinkingAnalyticsSDK.h
概述
ThinkingAnalyticsSDK iOS SDK, 使用ThinkingAnalyticsSDK 在应用里跟踪事件。
1. 获取实例
+ (ThinkingAnalyticsSDK *)sharedInstance;
说明:
获取实例化对象,请在初始化完成后调用
返回值:ThinkingAnalyticsSDK
2. 初始化
+ (ThinkingAnalyticsSDK *)startWithAppId:(NSString *)appId withUrl:(NSString *)url;
说明:
用appid初始化ThinkingAnalyticsSDK实例,建议在应用代理内的didFinishLaunchingWithOptions方法中初始化您的类,并且一定要在上传事件之前进行初始化。
参数:
appkey:您在TA后台获得的APP ID
url:数据上传的url
3. 追踪事件
- (void)track:(NSString *)event;
说明:
追踪一个事件,该事件将会先保存在本地,再按每20条(可配置)或每15秒(可配置)的规则发送一次。
参数:
event:事件的名称,类型是NSString
- (void)track:(NSString *)event
properties:(NSDictionary *)propertieDict;
说明:
追踪一个事件,该事件将会先保存在本地,再按每20条(可配置)或每15秒(可配置)的规则发送一次。
参数:
event:事件的名称,类型是NSString
propertieDict:事件的属性,类型为NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示
- (void)track:(NSString *)event
properties:(NSDictionary *)propertieDict
time:(NSDate *)time;
说明:
追踪一个事件,该事件将会先保存在本地,再按每20条(可配置)或每15秒(可配置)的规则发送一次。
参数:
event:事件的名称,类型是NSString
propertieDict:事件的属性,类型为NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示
time:事件触发的时间,类型为NSDate,传入的参数将替换默认选取的调用时本机时间作为事件触发时间
4. 记录事件时长
- (void)timeEvent:(NSString *)event;
说明:
开始记录某个事件的时长,直到用户上传该事件为止,该事件中将会带有#duration
这一预置属性,用以表示记录的时长,多次开始记录同一事件的时长将会以最后一次调用作为计时起点,
参数:
event:您需要计时的事件的名称
5. 用户属性
5.1 设置用户属性
- (void)user_set:(NSDictionary *)property;
说明:
设置用户属性,该属性有值则覆盖
参数:
property:需要设置的用户属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示
5.2 设置单次用户属性
- (void)user_setOnce:(NSDictionary *)property;
说明:
设置用户属性,该属性有值则不写入
参数:
property:需要设置的用户属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示
5.3 累加用户属性
- (void)user_add:(NSDictionary *)property;
说明:
对数值型的用户属性进行累加操作,输入负值相当于减法操作
参数:
property:需要进行累加操作的用户属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSNumber
5.4 重置用户属性接口
- (void)user_unset:(NSString *)propertyName;
说明:
对传入属性名的用户属性进行重置,即将值清空设置成NULL
参数:
propertyName:需要进行重置操作的用户属性名,类型是NSString
5.5 删除用户
- (void)user_delete;
说明:
在数据库中删除该用户,该操作可能产生不可逆的后果,请慎用
6. 公共事件属性
6.1 设置公共事件属性
- (void)setSuperProperties:(NSDictionary *)propertyDict;
说明:
添加事件公共属性,设置后上传的事件都会带有这些公共事件属性。每次设置会将新的属性添加进公共属性中,之前设置的也将保留,如果多次设置同一属性,则取最后一次的设置值,公共事件属性的配置将会被保存,无需多次调用
参数:
propertyDict:您添加的公共事件属性,类型是NSDictionary,每个元素代表一个属性,key值为属性名,类型为NSString,value值为属性值,类型为NSString、NSNumber、NSDate,如需上传布尔值,请以@YES与@NO表示
6.2 删除公共事件属性
- (void)unsetSuperProperty:(NSString *)property;
说明:
删除已设置的公共事件属性
参数:
property:需要删除的公共事件属性的属性名,类型是NSString。
6.3 清空公共事件属性
- (void)clearSuperProperties;
说明:
清空所有已设置的公共事件属性
7. 设置访客ID
- (void)identify:(NSString *)distinctId;
说明:
设置用户的访客ID,SDK默认以IDFV或UUID作为用户的访客ID,每次设置将会覆盖先前的访客ID,设置后的访客ID将会被保存,无需多次调用
参数:
distinctId:您设置的访客ID
8. 设置账号ID
- (void)login:(NSString *)accountId;
说明:
设置用户的账号ID,设置后用户上传的数据中将带有#account_id
这一字段,每次设置将会覆盖先前的账号ID,设置后的账号ID将会被保存,无需多次调用
参数:
accountId:您设置的账号ID,类型是NSString。
请注意,该方法不会上传用户登录的事件
9. 清空账号ID
- (void)logout;
说明:
清除账号ID,设置后用户上传的数据中将没有#account_id
这一字段
请注意,该方法不会上传用户登出的事件
10. 设置上报数据的网络环境条件
- (void)setNetworkType:(ThinkingAnalyticsNetworkType)type;
说明:
设置在哪些网络环境下可以上报数据
参数:
type:上传的网络环境条件,共有三种取值
- TDNetworkTypeDefault:默认设置,在3G、4G、Wifi状态下上报数据
- TDNetworkTypeOnlyWIFI:只在Wifi状态下上报数据
- TDNetworkTypeALL:在2G、3G、4G、Wifi状态下上报数据
11. 开启自动采集功能
- (void)enableAutoTrack:(ThinkingAnalyticsAutoTrackEventType)eventType;
说明:
开启SDK自动采集事件功能,将会自动采集APP的安装、APP的启动、APP关闭、APP页面(View Controller)浏览、APP控件(View)点击与APP崩溃
参数:
eventType:需要开启的自动采集事件类型,共有六种取值
ThinkingAnalyticsEventTypeAppInstall
,APP安装ThinkingAnalyticsEventTypeAppStart
,APP启动ThinkingAnalyticsEventTypeAppEnd
,APP关闭ThinkingAnalyticsEventTypeAppViewScreen
,APP浏览页面事件ThinkingAnalyticsEventTypeAppClick
,APP点击控件事件ThinkingAnalyticsEventTypeAppViewCrash
,APP崩溃事件
11.1 忽略某个页面或某些页面的事件
- (void)ignoreAutoTrackViewControllers:(NSArray *)controllers;
说明:
忽略某个(些)页面的自动采集事件,包括浏览页面事件与点击控件事件,将不再上传
参数:
controllers:需要忽略页面的View Controller的类名列表
11.2 忽略某个类型控件的点击事件
- (void)ignoreViewType:(Class)aClass;
说明:
忽略某个类型控件的点击事件,该类型控件的点击事件将不再上传
参数:
aClass:需要忽略控件的类名
12. 与 H5 页面的打通
- (void)addWebViewUserAgent;
说明:
开启与JavaScript SDK的打通开关,详情请参考H5 与 APP SDK 打通一节
二、协议 TDUIViewAutoTrackDelegate
@optional
-(NSDictionary *) thinkingAnalytics_tableView:(UITableView *)tableView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath;
说明:
为UITableView
的点击事件设置自定义属性,返回值为设置的属性,类型为NSDictionary
@optional
-(NSDictionary *) thinkingAnalytics_collectionView:(UICollectionView *)collectionView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath;
说明:
为UICollectionView
的点击事件设置自定义属性,返回值为设置的属性,类型为NSDictionary
三、分类 UIView (ThinkingAnalytics)
概述
为UIView增添多个属性,用以在自动采集事件中使用
@property (nonatomic,assign) BOOL thinkingAnalyticsIgnoreView;
说明:
忽略某个控件的点击事件,设置为YES则该控件的点击事件将不再上传
@property (strong,nonatomic) NSDictionary* thinkingAnalyticsViewProperties;
说明:
为自动采集的点击事件设置自定义属性,类型是NSDictionary
@property (nonatomic, weak, nullable) id thinkingAnalyticsDelegate;
说明:
提供代理,在对UITableView
与UICollectionView
的控件点击事件设置自定义属性时使用
四、协议 TDAutoTracker
@required
-(NSDictionary *)getTrackProperties;
说明:
为自动采集的页面浏览事件设置自定义属性,类型是NSDictionary
五、协议 TDScreenAutoTracker<TDAutoTracker>
@required
-(NSString *) getScreenUrl;
说明:
为页面(View Controller)设置URL schema,在自动采集的页面浏览与控件点击事件中,页面地址属性#url
与前向地址属性#referrer
将会以该属性为值